﻿namespace DimensionsHelper.ExcelAddIn.Core;

public interface IExcelAddInSettings
{
    /// <summary>
    /// 设置名，此名称与保存的JSON文件名相同。
    /// </summary>
    string Name { get; }

    /// <summary>
    /// 将本地设置对象转换为用于传递JSON的对象。
    /// </summary>
    /// <param name="name">指定的配置名，可以是空</param>
    IExcelAddInTransmission Transmit(string? name);

    /// <summary>
    /// 接收JSON对象并转换为本地设置对象。
    /// </summary>
    /// <param name="transimission">接收的对象</param>
    void Recive(object transimission);

    /// <summary>
    /// 将本地设置对象与接收的对象进行合并。
    /// </summary>
    /// <param name="transmission">传递设置对象</param>
    /// <returns>如果类型不符合，返回<see langword="false"/></returns>
    bool Join(object transmission);
}
